Slicing Pointers and Procedures (abstract)

نویسنده

  • Michael D. Ernst
چکیده

Program slicing restricts attention the components of a program relevant to evaluation of one expression, the slicing criterion. Our slicer, which explicitly represents the store as an aggregate value is the rst to support arbitrary pointer manipulations and aggregate values, and is faster than more limited techniques. We also improve the asymptotic complexity of slicing in the presence of procedure calls, and of a preprocessing step for computing dependences of procedure returns on formals. Additionally, our interprocedural slices can be smaller than those produced by other techniques. We implement these techniques in the rst slicer for an entire practical programming language (ANSI C, except longjmp).

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Precise Slicing in Imperative Programs via Term-Rewriting and Abstract Interpretation

We propose a new approach for producing precise constrained slices of programs in a language such as C. We build upon a previous approach for this problem, which is based on term-rewriting, which primarily targets loop-free fragments and is fully precise in this setting. We incorporate abstract interpretation into term-rewriting, using a given arbitrary abstract lattice, resulting in a novel te...

متن کامل

The Application of Term Rewriting Systems for Expressing Generic Program Slicing Algorithms

Program slicing is a technique in software engineering for isolating parts of a program that influence the value of a variable or some other arbitrary expression in that program. There exist many different slicing algorithms, with specific techniques for a variety of language features such as procedures, unstructured control flow, composite data types, pointers, concurrency, etc. This paper sho...

متن کامل

Reuse-Driven Interprocedural Slicing in the Presence of Pointers and Recursion

Program slicing, a technique to compute the subset of program statements that can affect the value of a program variable at a specific program point, is widely used in tools to support maintenance activities. To be useful for supporting these activities, a slicing technique must be sufficiently precise and efficient. Harrold and Ci propose a method for improving the efficiency of slicing by reu...

متن کامل

Incremental Slicing Based on Data-Dependences Types

Program slicing is useful for assisting with software-maintenance tasks, such as program understanding, debugging, impact analysis, and regression testing. The presence and frequent usage of pointers, in languages such as C, causes complex data dependences. To function effectively on such programs, slicing techniques must account for pointerinduced data dependences. Although many existing slici...

متن کامل

Data Slicing: Separating the Heap into Independent Regions

In this paper, we present a formal description of data slicing, which is a type-directed program transformation technique that separates a program’s heap into several independent regions. Pointers within each region mirror the structure of pointers in the original heap; however, each field whose type is a base type (e.g., the integer type) appears in only one of these regions. In addition, we d...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995